home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Surfer 2.0
/
Internet Surfer 2.0 (Wayzata Technology) (1996).iso
/
pc
/
text
/
mac
/
faqs.018
< prev
next >
Wrap
Text File
|
1996-02-12
|
29KB
|
571 lines
Frequently Asked Questions (FAQS);faqs.018
A third source of information is the monthly Virus Bulletin, published
in the UK. Among other things, it gives detailed technical
information on viruses (see also A9 below). Unfortunately, it is very
expensive (the subscription price is $395 per year). US subscriptions
can be obtained by calling 203-431-8720 or writing to 590 Danbury
Road, Ridgefield, CT 06877; for European subscriptions, the number is
+44-235-555139 and the address is: The Quadrant, Abingdon, OX14 3YS,
England.
A fourth good source of information on DOS viruses is the "Computer
Viruses" report of the National/International Computer Security
Association. This is updated regularly, and is fairly complete.
Copies cost approximately $75, and can be ordered by calling +1-
202-244-7875. ICSA/NCSA also publishes the monthly "Virus News and
Reviews" and other publications.
Another source of information is the documentation of Dr. Solomon's
Anti-Virus ToolKit. It is more complete than the CVC list, just as
accurate (if not more), but lists only DOS viruses. However, it is
not available electronically; you must buy his anti-virus package and
the virus information is part of the documentation.
Yet another source of information is "Virus News International",
published by S & S International. And, while not entirely virus-
related, "Computers & Security" provides information on many
aspects of computer security, including viruses.
The best source of information available on Apple Macintosh viruses is
the on-line documentation provided with the freeware Disinfectant
program by John Norstad. This is available at most Mac archive sites.
A8) Where can I get free or shareware anti-virus programs?
The VIRUS-L/comp.virus archive sites carry publicly distributable
anti-virus software products. See a recent listing of the archive
sites (or ask the moderator for a recent listing) for more information
on these sites.
Many freeware/shareware anti-virus programs for DOS are available via
anonymous FTP on WSMR-SIMTEL20.ARMY.MIL (192.88.110.20), in the
directory PD1:<MSDOS.TROJAN-PRO>. Note that the SIMTEL20 archives
are also "mirrored" at many other anonymous FTP sites, including
oak.oakland.edu (141.210.10.117, pub/msdos/trojan-pro),
wuarchive.wustl.edu (128.252.135.4, /mirrors/msdos/trojan-pro),
and nic.funet.fi (128.214.6.100, /pub/msdos/utilities/trojan-pro).
They can also be obtained via e-mail in uuencoded form from various
TRICKLE sites, especially in Europe.
Likewise, Macintosh anti-virus programs can be found on SIMTEL20 in
the PD3:<MACINTOSH.VIRUS> directory.
A list of many anti-viral programs, incl. commercial products and one
person's rating of them, can be obtained by anonymous ftp from
cert.org (192.88.209.5) in pub/virus-l/docs/reviews as file
slade.quickref.rvw.
A9) Where can I get more information on viruses, etc.?
There are four excellent books on computer viruses available that
should cover most of the introductory and technical questions you
might have:
* "Computers Under Attack: Intruders, Worms and Viruses," edited by
Peter J. Denning, ACM Press/Addison-Wesley, 1990. This is a book of
collected readings that discuss computer viruses, computer worms,
break-ins, legal and social aspects, and many other items related to
computer security and malicious software. A very solid, readable
collection that doesn't require a highly-technical background.
Price: $20.50.
* "Rogue Programs: Viruses, Worms and Trojan Horses," edited by
Lance J. Hoffman, Van Nostrand Reinhold, 1990. This is a book of
collected readings describing in detail how viruses work, where they
come from, what they do, etc. It also has material on worms, trojan
horse programs, and other malicious software programs. This book
focuses more on mechanism and relatively less on social aspects than
does the Denning book; however, there is an excellent piece by Anne
Branscomb that covers the legal aspects. Price: $32.95.
* "A Pathology of Computer Viruses," by David Ferbrache,
Springer-Verlag, 1992. This is a recent, in-depth book on the
history, operation, and effects of computer viruses. It is one of the
most complete books on the subject, with an extensive history section,
a section on Macintosh viruses, network worms, and Unix viruses (if
they were to exist).
* "A Short Course on Computer Viruses", by Dr. Fred B. Cohen, ASP
Press, 1990. This book is by a well-known pioneer in virus research,
who has also written dozens of technical papers on the subject. The
book can be obtained by writing to ASP Press, P.O. Box 81270,
Pittsburgh, PA 15217. Price: $24.00.
A somewhat dated, but still useful, high-level description of viruses,
suitable for a complete novice without extensive computer background
is in "Computer Viruses: Dealing with Electronic Vandalism and
Programmed Threats," by Eugene H. Spafford, Kathleen A. Heaphy, and
David J. Ferbrache, ADAPSO (Arlington VA), 1989. ADAPSO is a
computer industry service organization and not a publisher, so the
book cannot be found in bookstores; copies can be obtained directly
from ADAPSO @ +1 703-522-5055). There is a discount for ADAPSO
members, educators, and law enforcement personnel. Many people have
indicated they find this a very understandable reference; portions of
it have been reprinted many other places, including Denning &
Hoffman's books (above).
It is also worth consulting various publications such as _Computers &
Security_ (which, while not restricted to viruses, contains many of
Cohen's papers) and the _Virus Bulletin_ (published in the UK; its
technical articles are considered good, although there has been much
criticism in VIRUS-L of some of its product evaluations).
======================================================
= Section B. Definitions and General Information =
======================================================
B1) What are computer viruses (and why should I worry about them)?
According to Fred Cohen's well-known definition, a COMPUTER VIRUS is a
computer program that can infect other computer programs by modifying
them in such a way as to include a (possibly evolved) copy of itself.
Note that a program does not have to perform outright damage (such as
deleting or corrupting files) in order to to be called a "virus".
However, Cohen uses the terms within his definition (e.g. "program"
and "modify") a bit differently from the way most anti-virus
researchers use them, and classifies as viruses some things which most
of us would not consider viruses.
Many people use the term loosely to cover any sort of program that
tries to hide its (malicious) function and tries to spread onto as
many computers as possible. (See the definition of "Trojan".) Be
aware that what constitutes a "program" for a virus to infect may
include a lot more than is at first obvious - don't assume too much
about what a virus can or can't do!
These software "pranks" are very serious; they are spreading faster
than they are being stopped, and even the least harmful of viruses
could be fatal. For example, a virus that stops your computer and
displays a message, in the context of a hospital life-support
computer, could be fatal. Even those who created the viruses could
not stop them if they wanted to; it requires a concerted effort from
computer users to be "virus-aware", rather than the ignorance and
ambivalence that have allowed them to grow to such a problem.
B2) What is a Trojan Horse?
A TROJAN HORSE is a program that does something undocumented which the
programmer intended, but that the user would not approve of if he knew
about it. According to some people, a virus is a particular case of a
Trojan Horse, namely one which is able to spread to other programs
(i.e., it turns them into Trojans too). According to others, a virus
that does not do any deliberate damage (other than merely replicating)
is not a Trojan. Finally, despite the definitions, many people use
the term "Trojan" to refer only to a *non-replicating* malicious
program, so that the set of Trojans and the set of viruses are
disjoint.
B3) What are the main types of PC viruses?
Generally, there are two main classes of viruses. The first class
consists of the FILE INFECTORS which attach themselves to ordinary
program files. These usually infect arbitrary .COM and/or .EXE
programs, though some can infect any program for which execution is
requested, such as .SYS, .OVL, .PRG, & .MNU files.
File infectors can be either DIRECT ACTION or RESIDENT. A direct-
action virus selects one or more other programs to infect each time
the program which contains it is executed. A resident virus hides
itself somewhere in memory the first time an infected program is
executed, and thereafter infects other programs when *they* are
executed (as in the case of the Jerusalem) or when certain other
conditions are fulfilled. The Vienna is an example of a direct-action
virus. Most other viruses are resident.
The second category is SYSTEM or BOOT-RECORD INFECTORS: those viruses
which infect executable code found in certain system areas on a disk
which are not ordinary files. On DOS systems, there are ordinary
boot-sector viruses, which infect only the DOS boot sector, and MBR
viruses which infect the Master Boot Record on fixed disks and the DOS
boot sector on diskettes. Examples include Brain, Stoned, Empire,
Azusa, and Michelangelo. Such viruses are always resident viruses.
Finally, a few viruses are able to infect both (the Tequila virus is
one example). These are often called "MULTI-PARTITE" viruses, though
there has been criticism of this name; another name is "BOOT-AND-FILE"
virus.
FILE SYSTEM or CLUSTER viruses (e.g. Dir-II) are those which modify
directory table entries so that the virus is loaded and executed
before the desired program is. Note that the program itself is not
physically altered, only the directory entry is. Some consider these
infectors to be a third category of viruses, while others consider
them to be a sub-category of the file infectors.
B4) What is a stealth virus?
A STEALTH virus is one which hides the modifications it has made in
the file or boot record, usually by monitoring the system functions
used by programs to read files or physical blocks from storage media,
and forging the results of such system functions so that programs
which try to read these areas see the original uninfected form of the
file instead of the actual infected form. Thus the viral modifications
go undetected by anti-viral programs. However, in order to do this,
the virus must be resident in memory when the anti-viral program is
executed.
Example: The very first DOS virus, Brain, a boot-sector infector,
monitors physical disk I/O and re-directs any attempt to read a
Brain-infected boot sector to the disk area where the original boot
sector is stored. The next viruses to use this technique were the
file infectors Number of the Beast and Frodo (= 4096 = 4K).
Countermeasures: A "clean" system is needed so that no virus is
present to distort the results. Thus the system should be built from
a trusted, clean master copy before any virus-checking is attempted;
this is "The Golden Rule of the Trade." With DOS, (1) boot from
original DOS diskettes (i.e. DOS Startup/Program diskettes from a
major vendor that have been write-protected since their creation);
(2) use only tools from original diskettes until virus-checking has
completed.
B5) What is a polymorphic virus?
A POLYMORPHIC virus is one which produces varied (yet fully
operational) copies of itself, in the hope that virus scanners (see
D1) will not be able to detect all instances of the virus.
One method to evade signature-driven virus scanners is self-encryption
with a variable key; however these viruses (e.g. Cascade) are not
termed "polymorphic," as their decryption code is always the same and
thus can be used as a virus signature even by the simplest, signature-
driven virus scanners (unless another virus or program uses the
identical decryption routine).
One method to make a polymorphic virus is to choose among a variety of
different encryption schemes requiring different decryption routines:
only one of these routines would be plainly visible in any instance of
the virus (e.g. the Whale virus). A signature-driven virus scanner
would have to exploit several signatures (one for each possible
encryption method) to reliably identify a virus of this kind.
A more sophisticated polymorphic virus (e.g. V2P6) will vary the
sequence of instructions in its copies by interspersing it with
"noise" instructions (e.g. a No Operation instruction, or an
instruction to load a currently unused register with an arbitrary
value), by interchanging mutually independent instructions, or even by
using various instruction sequences with identical net effects (e.g.
Subtract A from A, and Move 0 to A). A simple-minded, signature-based
virus scanner would not be able to reliably identify this sort of
virus; rather, a sophisticated "scanning engine" has to be constructed
after thorough research into the particular virus.
The most sophisticated form of polymorphism discovered so far is the
MtE "Mutation Engine" written by the Bulgarian virus writer who calls
himself the "Dark Avenger". It comes in the form of an object module.
Any virus can be made polymorphic by adding certain calls to the
assembler source code and linking to the mutation-engine and
random-number-generator modules.
The advent of polymorphic viruses has rendered virus-scanning an ever
more difficult and expensive endeavor; adding more and more search
strings to simple scanners will not adequately deal with these
viruses.
B6) What are fast and slow infectors?
A typical file infector (such as the Jerusalem) copies itself to
memory when a program infected by it is executed, and then infects
other programs when they are executed.
A FAST infector is a virus which, when it is active in memory, infects
not only programs which are executed, but even those which are merely
opened. The result is that if such a virus is in memory, running a
scanner or integrity checker can result in all (or at least many)
programs becoming infected all at once. Examples are the Dark Avenger
and the Frodo viruses.
The term "SLOW infector" is sometimes used for a virus which, if it is
active in memory, infects only files as they are modified (or
created). The purpose is to fool people who use integrity checkers
into thinking that the modification reported by the integrity checker
is due solely to legitimate reasons. An example is the Darth Vader
virus.
B7) What is a sparse infector?
The term "SPARSE infector" is sometimes given to a virus which
infects only occasionally, e.g. every 10th executed file, or only
files whose lengths fall within a narrow range, etc. By infecting
less often, such viruses try to minimize the probability of being
discovered by the user.
B8) What is a companion virus?
A COMPANION virus is one which, instead of modifying an existing file,
creates a new program which (unknown to the user) gets executed by the
command-line interpreter instead of the intended program. (On exit,
the new program executes the original program so that things will
appear normal.) The only way this has been done so far is by creating
an infected .COM file with the same name as an existing .EXE file.
Note that those integrity checkers which look only for *modifications*
in *existing* files will fail to detect such viruses.
(Note that not all researchers consider this type of malicious code
to be a virus, since it does not modify existing files.)
B9) What is an armored virus?
An ARMORED virus is one which uses special tricks to make the tracing,
disassembling and understanding of their code more difficult. A good
example is the Whale virus.
B10) Miscellaneous Jargon and Abbreviations
BSI = Boot Sector Infector: a virus which takes control when the
computer attempts to boot (as opposed to a file infector).
CMOS = Complementary Metal Oxide Semiconductor: A memory area that is
used in AT and higher class PCs for storage of system information.
CMOS is battery backed RAM (see below), originally used to maintain
date and time information while the PC was turned off. CMOS memory
is not in the normal CPU address space and cannot be executed. While
a virus may place data in the CMOS or may corrupt it, a virus cannot
hide there.
DOS = Disk Operating System. We use the term "DOS" to mean any of the
MS-DOS, PC-DOS, or DR DOS systems for PCs and compatibles, even
though there are operating systems called "DOS" on other (unrelated)
machines.
MBR = Master Boot Record: the first Absolute sector (track 0, head 0,
sector 1) on a PC hard disk, that usually contains the partition table
(but on some PCs may simply contain a boot sector). This is not the
same as the first DOS sector (Logical sector 0).
RAM = Random Access Memory: the place programs are loaded into in
order to execute; the significance for viruses is that, to be active,
they must grab some of this for themselves. However, some virus
scanners may declare that a virus is active simply when it is found
in RAM, even though it might be simply left over in a buffer area of
RAM rather than truly being active.
TOM = Top Of Memory: the end of conventional memory, an architectural
design limit at the 640K mark on most PCs. Some early PCs may not
be fully populated, but the amount of memory is always a multiple of
64K. A boot-record virus on a PC typically resides just below this
mark and changes the value which will be reported for the TOM to the
location of the beginning of the virus so that it won't get
overwritten. Checking this value for changes can help detect a
virus, but there are also legitimate reasons why it may change (see
C11). A very few PCs with unusual memory managers/settings may
report in excess of 640K.
TSR = Terminate but Stay Resident: these are PC programs that stay in
memory while you continue to use the computer for other purposes;
they include pop-up utilities, network software, and the great
majority of viruses. These can often be seen using utilities such as
MEM, MAPMEM, PMAP, F-MMAP and INFOPLUS.
=================================
= Section C. Virus Detection =
=================================
C1) What are the symptoms and indications of a virus infection?
Viruses try to spread as much as possible before they deliver their
"payload", but there can be symptoms of virus infection before this,
and it is important to use this opportunity to spot and eradicate the
virus before any destruction.
There are various kinds of symptoms which some virus authors have
written into their programs, such as messages, music and graphical
displays. However, the main indications are changes in file sizes and
contents, changing of interrupt vectors or the reassignment of other
system resources. The unaccounted use of RAM or a reduction in the
amount known to be in the machine are important indicators. The
examination of the code is valuable to the trained eye, but even the
novice can often spot the gross differences between a valid boot
sector and an infected one. However, these symptoms, along with
longer disk activity and strange behavior from the hardware, can also
be caused by genuine software, by harmless "prank" programs, or by
hardware faults.
The only foolproof way to determine that a virus is present is for an
expert to analyze the assembly code contained in all programs and
system areas, but this is usually impracticable. Virus scanners go
some way towards that by looking in that code for known viruses; some
will even try to use heuristic means to spot viral code, but this is
not always reliable. It is wise to arm yourself with the latest
anti-viral software, but also to pay close attention to your system;
look particularly for any change in the memory map or configuration as
soon as you start the computer. For users of DOS 5.0, the MEM program
with the /C switch is very handy for this. If you have DRDOS, use MEM
with the /A switch; if you have an earlier version, use CHKDSK or the
commonly-available PMAP or MAPMEM utilities. You don't have to know
what all the numbers mean, only that they change. Mac users have
"info" options that give some indication of memory use, but may need
ResEdit for more detail.
C2) What steps should be taken in diagnosing and identifying viruses?
Most of the time, a virus scanner program will take care of that for
you. (Remember, though, that scanning programs must be kept up to
date. Also remember that different scanner authors may call the same
virus by different names. If you want to identify a virus in order to
ask for help, it is best to run at least two scanners on it and, when
asking, say which scanners, and what versions, gave the names.) To
help identify problems early, run it on new programs and diskettes;
when an integrity checker reports a mismatch, when a generic
monitoring program sounds an alarm; or when you receive an updated
version of a scanner (or a different scanner than the one you have
been using). However, because of the time required, it is not
generally advisable to insert into your AUTOEXEC.BAT file a command to
run a scanner on an entire hard disk on every boot.
If you run into an alarm that the scanner doesn't identify, or
doesn't properly clean up for you, first verify that the version that
you are using is the most recent, and then get in touch with one of
the reputable antivirus researchers, who may ask you to send a copy
of the infected file to him. See also question C10.
C3) What is the best way to remove a virus?
In order that downtime be short and losses low, do the minimum that
you must to restore the system to a normal state, starting with
booting the system from a clean diskette. It is very unlikely that
you need to low-level reformat the hard disk!
If backups of the infected files are available and appropriate care
was taken when making the backups (see D10), this is the safest
solution, even though it requires a lot of work if many files are
involved.
More commonly, a disinfecting program is used. If the virus is a boot
sector infector, you can continue using the computer with relative
safety if you boot it from a clean system diskette, but it is wise to
go through all your diskettes removing infection, since sooner or
later you may be careless and leave a diskette in the machine when it
reboots. Boot sector infections on PCs can be cured by a two-step
approach of replacing the MBR (on the hard disk), either by using a
backup or by the FDISK/MBR command (from DOS 5 and up), then using the
SYS command to replace the DOS boot sector.
C4) What does the <insert name here> virus do?
If an anti-virus program has detected a virus on your computer, don't
rush to post a question to this list asking what it does. First, it
might be a false positive alert (especially if the virus is found only
in one file), and second, some viruses are extremely common, so the
question "What does the Stoned virus do?" or "What does the Jerusalem
virus do?" is asked here repeatedly. While this list is monitored by
several anti-virus experts, they get tired of perpetually answering
the same questions over and over again. In any case, if you really
need to know what a particular virus does (as opposed to knowing
enough to get rid of it), you will need a longer treatise than could
be given to you here.
For example, the Stoned virus replaces the disk's boot record with its
own, relocating the original to a sector on the disk that may (or may
not) occur in an unused portion of the root directory of a DOS
diskette; when active, it sits in an area a few kilobytes below the
top of memory. All this description could apply to a number of common
viruses; but the important points of where the original boot sector
goes - and what effect that has on networking software, non-DOS
partitions, and so on are all major questions in themselves.
Therefore, it is better if you first try to answer your question
yourself. There are several sources of information about the known
computer viruses, so please consult one of them before requesting
information publicly. Chances are that your virus is rather well known
and that it is already described in detail in at least one of these
sources. (See the answer to question A7, for instance.)
C5) What are "false positives" and "false negatives"?
A FALSE POSITIVE (or Type-I) error is one in which the anti-viral
software claims that a given file is infected by a virus when in
reality the file is clean. A FALSE NEGATIVE (or Type-II) error is one
in which the software fails to indicate that an infected file is
infected. Clearly false negatives are more serious than false
positives, although both are undesirable.
It has been proven by Dr. Fred Cohen that every virus detector must
have either false positives or false negatives or both. This is
expressed by saying that detection of viruses is UNDECIDABLE.
However his theorem does not preclude a program which has no false
negatives and *very few* false positives (e.g. if the only false
positives are those due to the file containing viral code which is
never actually executed, so that technically we do not have a virus).
In the case of virus scanners, false positives are rare, but they can
arise if the scan string chosen for a given virus is also present in
some benign programs because the string was not well chosen. False
negatives are more common with virus scanners because scanners will
miss a completely new or a heavily modified virus.
One other serious problem could occur: A positive that is misdiagnosed
(e.g., a scanner that detects the Empire virus in a boot record but
reports it as the Stoned). In the case of a boot sector infector, use
of a Stoned specific "cure" to recover from the Empire could result in
an unreadable disk or loss of extended partitions. Similarly,
sometimes "generic" recovery can result in unusable files, unless a
check is made (e.g. by comparing checksums) that the recovered file is
identical to the original file. Some more recent products store
information about the original programs to allow verification of
recovery processes.
C6) Could an anti-viral program itself be infected?
Yes, so it is important to obtain this software from good sources, and
to trust results only after running scanners from a "clean" system.
But there are situations where a scanner appears to be infected when
it isn't.
Most antiviral programs try very hard to identify only viral
infections, but sometimes they give false alarms. If two different
antiviral programs are both of the "scanner" type, they will contain
"signature strings" to identify viral infections. If the strings are
not "encrypted", then they will be identified as a virus by another
scanner type program. Also, if the scanner does not remove the
strings from memory after they are run, then another scanner may
detect the virus string "in memory".
Some "change detection" type antiviral programs add a bit of code or
data to a program when "protecting" it. This might be detected by
another "change detector" as a change to a program, and therefore
suspicious.
It is good practice to use more than one antiviral program. Do be
aware, however, that antiviral programs, by their nature, may confuse
each other.
C7) Where can I get a virus scanner for my Unix system?
Basically, you shouldn't bother scanning for Unix viruses at this
point in time. Although it is possible to write Unix-based viruses,
we have yet to see any instance of a non-experimental virus in that
environment. Someone with sufficient knowledge and access to write an
effective virus would be more likely to conduct other activities than
virus-writing. Furthermore, the typical form of software sharing in
an Unix environment would not support virus spread.
This answer is not meant to imply that viruses are impossible, or that
there aren't security problems in a typical Unix environment -- there
are. However, true viruses are highly unlikely and would corrupt file
and/or memory integrity. For more information on Unix security, see
the book "Practical Unix Security" by Garfinkel and Spafford, O'Reilly
& Associates, 1991 (it can be ordered via e-mail from nuts@ora.com).